######################
#### BIBLIOTECAS #####
######################

library(dplyr)
library(ggplot2)
library(readxl)
library(xlsx)
library(FactoMineR)
library(factoextra)
library(ClustOfVar)
library(cluster)
library(tidyr)
library(purrr)
library(scales)
library(textshape)
library(extrafont)
######################
#### CARREGAMENTO ####
######################

Deps_Analisados <- read_excel("~/Dados Camara/Listagem_Deputados.xlsx")
Partido_Real <- read_excel("~/Dados Camara/Partidos_Sigla_Orientacao.xlsx")
Bancada <- read_excel("~/Dados Camara/Bancada_2018.xlsx")

Proposicoes_2019 <- read.csv("~/Dados Camara/proposicoes-2019.csv", encoding="UTF-8", sep=";", comment.char="#")
Proposicoes_2020 <- read.csv("~/Dados Camara/proposicoes-2020.csv", encoding="UTF-8", sep=";", comment.char="#")
Proposicoes_2021 <- read.csv("~/Dados Camara/proposicoes-2021.csv", encoding="UTF-8", sep=";", comment.char="#")
Proposicoes_2021 <- Proposicoes_2021[,c(1:29,31)]
##Proposicoes_2022 <- read.csv("~/Dados Camara/proposicoes-2022.csv", encoding="UTF-8", sep=";", comment.char="#")
##Proposicoes_2022 <- Proposicoes_2022[,c(1:29,31)]
Proposicoes_Total <- rbind(Proposicoes_2019, Proposicoes_2020,Proposicoes_2021)

Orientacoes_2019 <- read.csv("~/Dados Camara/votacoesOrientacoes-2019.csv", encoding="UTF-8", sep=";", comment.char="#")
Orientacoes_2020 <- read.csv("~/Dados Camara/votacoesOrientacoes-2020.csv", encoding="UTF-8", sep=";", comment.char="#")
Orientacoes_2021 <- read.csv("~/Dados Camara/votacoesOrientacoes-2021.csv", encoding="UTF-8", sep=";", comment.char="#")
Orientacoes_2022 <- read.csv("~/Dados Camara/votacoesOrientacoes-2022.csv", encoding="UTF-8", sep=";", comment.char="#")
Orientacoes_Total <- rbind(Orientacoes_2019, Orientacoes_2020, Orientacoes_2021)

Votacoes_2019 <- read.csv("~/Dados Camara/votacoesVotos-2019.csv", encoding="UTF-8", sep=";", comment.char="#")
Votacoes_2020 <- read.csv("~/Dados Camara/votacoesVotos-2020.csv", encoding="UTF-8", sep=";", comment.char="#")
Votacoes_2021 <- read.csv("~/Dados Camara/votacoesVotos-2021.csv", encoding="UTF-8", sep=";", comment.char="#")
Votacoes_2022 <- read.csv("~/Dados Camara/votacoesVotos-2022.csv", encoding="UTF-8", sep=";", comment.char="#")
Votacoes_Total <- rbind(Votacoes_2019, Votacoes_2020, Votacoes_2021)

Deputados <- read.csv("~/Dados Camara/deputados.csv", encoding="UTF-8", sep=";", comment.char="#")
Deputados <- subset(Deputados, Deputados$idLegislaturaFinal == 56)

rm(Proposicoes_2019, Proposicoes_2020, Proposicoes_2021, Proposicoes_2022, 
   Orientacoes_2019, Orientacoes_2020, Orientacoes_2021, Orientacoes_2022,
   Votacoes_2019, Votacoes_2020, Votacoes_2021, Votacoes_2022)

Deputados <- left_join(Deputados, Deps_Analisados, by=c("nomeCivil"="NM_CANDIDATO"))
Deputados$MOVIMENTO <- ifelse(is.na(Deputados$MOVIMENTO), "Estabilishment", Deputados$MOVIMENTO)


######################
##### TRATAMENTO #####
######################

Orientacoes_Total <- left_join(Orientacoes_Total, Partido_Real, by=c("siglaBancada"="Sigla"))

Orientacoes_Total$Num <- substr(Orientacoes_Total$X.U.FEFF.idVotacao, 1,7)
Votacoes_Total$Num <- substr(Votacoes_Total$X.U.FEFF.idVotacao, 1,7)
Proposicoes_Total$Num <- substr(Proposicoes_Total$X.U.FEFF.id, 1,7)

Analisados_Orientacoes <- Orientacoes_Total
Analisados_Orientacoes <- Analisados_Orientacoes[,c(1,8,7,9)]

#Votacoes_Total$deputado_siglaPartido <- ifelse(Votacoes_Total$deputado_siglaPartido == "PPL",
#                                               "PCdoB",Votacoes_Total$deputado_siglaPartido)

#Votacoes_Total$deputado_siglaPartido <- ifelse(Votacoes_Total$deputado_siglaPartido == "PHS",
#                                               "PODE",Votacoes_Total$deputado_siglaPartido)

#Votacoes_Total$deputado_siglaPartido <- ifelse(Votacoes_Total$deputado_siglaPartido == "PRP",
#                                               "PATRIOTA",Votacoes_Total$deputado_siglaPartido)

Votacoes_Total$deputado_siglaPartido <- ifelse(Votacoes_Total$deputado_siglaPartido == "PPS",
                                               "CIDADANIA",Votacoes_Total$deputado_siglaPartido)

Votacoes_Total$deputado_siglaPartido <- ifelse(Votacoes_Total$deputado_siglaPartido == "PRB",
                                               "REPUBLICANOS",Votacoes_Total$deputado_siglaPartido)

Votacoes_Total$deputado_siglaPartido <- ifelse(Votacoes_Total$deputado_siglaPartido == "PATRI",
                                               "PATRIOTA",Votacoes_Total$deputado_siglaPartido)

Votacoes_Total$deputado_siglaPartido <- ifelse(Votacoes_Total$deputado_siglaPartido == "PL",
                                               "PL",Votacoes_Total$deputado_siglaPartido)

windowsFonts(Times=windowsFont("Times New Roman"))

######################
#### PROP VOTA��ES ###
######################

Proporcao_Votacoes <- Votacoes_Total
Proporcao_Votacoes$Contagem <- 1

Proporcao_Votacoes <- Proporcao_Votacoes %>%
  group_by(X.U.FEFF.idVotacao, voto) %>%
  summarise(Contagem = sum(Contagem))

Prop_Sim <- subset(Proporcao_Votacoes, Proporcao_Votacoes$voto == "Sim")
colnames(Prop_Sim) <- c("ID_Votacao","Tipo_Sim","Contagem_Sim")
Prop_Nao <- subset(Proporcao_Votacoes, Proporcao_Votacoes$voto == "N�o")
colnames(Prop_Nao) <- c("ID_Votacao","Tipo_Nao","Contagem_Nao")
Prop_Abs <- subset(Proporcao_Votacoes, Proporcao_Votacoes$voto == "Absten��o")
colnames(Prop_Abs) <- c("ID_Votacao","Tipo_Abs","Contagem_Abs")
Prop_Obs <- subset(Proporcao_Votacoes, Proporcao_Votacoes$voto == "Obstru��o")
colnames(Prop_Obs) <- c("ID_Votacao","Tipo_Obs","Contagem_Obs")
Prop_Art <- subset(Proporcao_Votacoes, Proporcao_Votacoes$voto == "Artigo 17")
colnames(Prop_Art) <- c("ID_Votacao","Tipo_Art","Contagem_Art")


Proporcao_Votacoes <- Proporcao_Votacoes %>%
  group_by(X.U.FEFF.idVotacao) %>%
  summarise(Contagem = sum(Contagem))

Proporcao_Votacoes <- left_join(Proporcao_Votacoes,Prop_Sim,
                                by=c("X.U.FEFF.idVotacao"="ID_Votacao"))
Proporcao_Votacoes <- left_join(Proporcao_Votacoes,Prop_Nao,
                                by=c("X.U.FEFF.idVotacao"="ID_Votacao"))
Proporcao_Votacoes <- left_join(Proporcao_Votacoes,Prop_Abs,
                                by=c("X.U.FEFF.idVotacao"="ID_Votacao"))
Proporcao_Votacoes <- left_join(Proporcao_Votacoes,Prop_Obs,
                                by=c("X.U.FEFF.idVotacao"="ID_Votacao"))
Proporcao_Votacoes <- left_join(Proporcao_Votacoes,Prop_Art,
                                by=c("X.U.FEFF.idVotacao"="ID_Votacao"))

rm(Prop_Sim, Prop_Nao, Prop_Abs, Prop_Obs, Prop_Art)

Proporcao_Votacoes <- Proporcao_Votacoes[,c(1,2,4,6,8,10,12)]

Proporcao_Votacoes$Contagem_Sim <- ifelse(is.na(Proporcao_Votacoes$Contagem_Sim),
                                          0, Proporcao_Votacoes$Contagem_Sim)
Proporcao_Votacoes$Contagem_Nao <- ifelse(is.na(Proporcao_Votacoes$Contagem_Nao),
                                          0, Proporcao_Votacoes$Contagem_Nao)
Proporcao_Votacoes$Contagem_Abs <- ifelse(is.na(Proporcao_Votacoes$Contagem_Abs),
                                          0, Proporcao_Votacoes$Contagem_Abs)
Proporcao_Votacoes$Contagem_Obs <- ifelse(is.na(Proporcao_Votacoes$Contagem_Obs),
                                          0, Proporcao_Votacoes$Contagem_Obs)
Proporcao_Votacoes$Contagem_Art <- ifelse(is.na(Proporcao_Votacoes$Contagem_Art),
                                          0, Proporcao_Votacoes$Contagem_Art)

Proporcao_Votacoes$Prop_Sim <- (Proporcao_Votacoes$Contagem_Sim / 
                                  Proporcao_Votacoes$Contagem) * 100
Proporcao_Votacoes$Prop_Nao <- (Proporcao_Votacoes$Contagem_Nao / 
                                  Proporcao_Votacoes$Contagem) * 100
Proporcao_Votacoes$Prop_Abs <- (Proporcao_Votacoes$Contagem_Abs / 
                                  Proporcao_Votacoes$Contagem) * 100
Proporcao_Votacoes$Prop_Obs <- (Proporcao_Votacoes$Contagem_Obs / 
                                  Proporcao_Votacoes$Contagem) * 100
Proporcao_Votacoes$Prop_Art <- (Proporcao_Votacoes$Contagem_Art / 
                                  Proporcao_Votacoes$Contagem) * 100

Proporcao_Votacoes$Consenso <- ifelse(Proporcao_Votacoes$Prop_Sim > 90, "Sim",
                                      (ifelse(Proporcao_Votacoes$Prop_Nao > 90, "Sim",
                                              (ifelse(Proporcao_Votacoes$Prop_Abs > 90, "Sim",
                                                      (ifelse(Proporcao_Votacoes$Prop_Obs > 90, "Sim",
                                                              (ifelse(Proporcao_Votacoes$Prop_Art > 90, "Sim","Nao")))))))))

Proporcao_Votacoes_Descritiva <- Proporcao_Votacoes
Proporcao_Votacoes_Descritiva$Contagem <- 1  

Proporcao_Votacoes_Descritiva <- Proporcao_Votacoes_Descritiva %>%
  group_by(Consenso) %>%
  summarise(Contagem = sum(Contagem))


Proporcao_Votacoes <- Proporcao_Votacoes[,c(1,13)]

#######################
#### �NDICE DE RICE ###
#######################

Proporcao_Rice <- Votacoes_Total
Proporcao_Rice$Contagem <- 1

Proporcao_Rice <- Proporcao_Rice %>%
  group_by(X.U.FEFF.idVotacao, deputado_siglaPartido, voto) %>%
  summarise(Contagem = sum(Contagem))

Prop_Sim_Rice <- subset(Proporcao_Rice, Proporcao_Rice$voto == "Sim")
colnames(Prop_Sim_Rice) <- c("ID_Votacao","Partido","Tipo_Sim","Contagem_Sim")
Prop_Nao_Rice <- subset(Proporcao_Rice, Proporcao_Rice$voto == "N�o")
colnames(Prop_Nao_Rice) <- c("ID_Votacao","Partido","Tipo_Nao","Contagem_Nao")
Prop_Abs_Rice <- subset(Proporcao_Rice, Proporcao_Rice$voto == "Absten��o")
colnames(Prop_Abs_Rice) <- c("ID_Votacao","Partido","Tipo_Abs","Contagem_Abs")
Prop_Obs_Rice <- subset(Proporcao_Rice, Proporcao_Rice$voto == "Obstru��o")
colnames(Prop_Obs_Rice) <- c("ID_Votacao","Partido","Tipo_Obs","Contagem_Obs")
Prop_Art_Rice <- subset(Proporcao_Rice, Proporcao_Rice$voto == "Artigo 17")
colnames(Prop_Art_Rice) <- c("ID_Votacao","Partido","Tipo_Art","Contagem_Art")

Proporcao_Rice <- Proporcao_Rice %>%
  group_by(X.U.FEFF.idVotacao, deputado_siglaPartido) %>%
  summarise(Contagem = sum(Contagem))

Proporcao_Rice <- left_join(Proporcao_Rice,Prop_Sim_Rice,
                            by=c("X.U.FEFF.idVotacao"="ID_Votacao",
                                 "deputado_siglaPartido"="Partido"))
Proporcao_Rice <- left_join(Proporcao_Rice,Prop_Nao_Rice,
                            by=c("X.U.FEFF.idVotacao"="ID_Votacao",
                                 "deputado_siglaPartido"="Partido"))
Proporcao_Rice <- left_join(Proporcao_Rice,Prop_Abs_Rice,
                            by=c("X.U.FEFF.idVotacao"="ID_Votacao",
                                 "deputado_siglaPartido"="Partido"))
Proporcao_Rice <- left_join(Proporcao_Rice,Prop_Obs_Rice,
                            by=c("X.U.FEFF.idVotacao"="ID_Votacao",
                                 "deputado_siglaPartido"="Partido"))
Proporcao_Rice <- left_join(Proporcao_Rice,Prop_Art_Rice,
                            by=c("X.U.FEFF.idVotacao"="ID_Votacao",
                                 "deputado_siglaPartido"="Partido"))

rm(Prop_Sim_Rice, Prop_Nao_Rice, Prop_Abs_Rice, Prop_Obs_Rice, Prop_Art_Rice)

Proporcao_Rice <- Proporcao_Rice[,c(1,2,3,5,7,9,11,13)]

Proporcao_Rice$Contagem_Sim <- ifelse(is.na(Proporcao_Rice$Contagem_Sim),
                                      0, Proporcao_Rice$Contagem_Sim)
Proporcao_Rice$Contagem_Nao <- ifelse(is.na(Proporcao_Rice$Contagem_Nao),
                                      0, Proporcao_Rice$Contagem_Nao)
Proporcao_Rice$Contagem_Abs <- ifelse(is.na(Proporcao_Rice$Contagem_Abs),
                                      0, Proporcao_Rice$Contagem_Abs)
Proporcao_Rice$Contagem_Obs <- ifelse(is.na(Proporcao_Rice$Contagem_Obs),
                                      0, Proporcao_Rice$Contagem_Obs)
Proporcao_Rice$Contagem_Art <- ifelse(is.na(Proporcao_Rice$Contagem_Art),
                                      0, Proporcao_Rice$Contagem_Art)

############################
########### IDP ############
############################

Base_IDP <- Proporcao_Rice

Base_IDP <- left_join(Base_IDP,Analisados_Orientacoes,
                      by=c("X.U.FEFF.idVotacao"="X.U.FEFF.idVotacao",
                           "deputado_siglaPartido"="Partido_Real"))

Base_IDP <- left_join(Base_IDP,Bancada,
                      by=c("deputado_siglaPartido"="Partido"))

Base_IDP <- subset(Base_IDP, Base_IDP$orientacao != "Liberado")

Base_IDP$Rice <- ((Base_IDP$Contagem_Sim*(Base_IDP$Contagem_Sim-1))+((Base_IDP$Contagem-Base_IDP$Contagem_Sim)*(Base_IDP$Contagem-Base_IDP$Contagem_Sim-1)))/(Base_IDP$Contagem*(Base_IDP$Contagem-1))*100

Base_IDP  <- left_join(Base_IDP,Proporcao_Votacoes,
                       by=c("X.U.FEFF.idVotacao"="X.U.FEFF.idVotacao"))

Base_IDP <- subset(Base_IDP, Base_IDP$Consenso == "Nao")

Base_IDP <- subset(Base_IDP, is.numeric(Base_IDP$Rice))

Base_IDP <- subset(Base_IDP, Base_IDP$Rice != "NaN")

Base_IDP_Simples <- Base_IDP[,c(1)]

Base_IDP_Simples <- unique(Base_IDP$X.U.FEFF.idVotacao)

IDP_Media <- Base_IDP %>%
  group_by(deputado_siglaPartido) %>%
  summarise(Media_Rice = mean(Rice))



write.xlsx(IDP_Media, file = "Indice_Rice.xlsx", 
           sheetName = "Rice_Media", append = FALSE)


write.xlsx(Base_IDP, file = "Indice_IDP.xlsx", 
           sheetName = "Base_IDP", append = FALSE)
